Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create local script to replace existing local dev scripts #1295

Merged
merged 2 commits into from
Oct 2, 2023

Conversation

tomkennedy513
Copy link
Collaborator

  • Support building with pack or ko locally

@tomkennedy513 tomkennedy513 requested a review from a team as a code owner July 31, 2023 14:29
@tomkennedy513 tomkennedy513 force-pushed the local-dev branch 2 times, most recently from e86e705 to 09466e5 Compare July 31, 2023 15:26
DEVELOPMENT.md Outdated Show resolved Hide resolved
hack/local.sh Outdated Show resolved Hide resolved
hack/build.sh Show resolved Hide resolved
echo "Generating kbld config"
temp_dir=$(mktemp -d)
kbld_config_path="${temp_dir}/kbld-config"
if [ $type = "ko" ]; then
Copy link
Contributor

@sambhav sambhav Aug 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason to support both types? Should we just use the one that is better suited here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main reason I added both was a bit of a proof of concept. Inside VMware we have some teams that use ko, but are experimenting with using buildpacks, so I was trying to show a way that you could build the same image with either ko or pack.

Which one has the best developer experience is a bit tough to answer since it depends a bit on what you're doing. Iterating locally, ko will be a bit quicker since there is no docker involved, but it is very dependent on your local environment. Building with pack will replicate our ci so as a developer you can have confidence that the changes you are working on locally will behave the same in ci.

I personally think there is room for both, but if I had to chose one I would pick pack because consistency would be more important to me than speed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The trade off is pack is what we use to generate our actual releases (and something-something dog fooding), so you would use it to get as close as possible to the release process/candidate. On the other hand, ko is fast, like 1 min vs 7-10 min. The difference is even greater when both are started from empty caches.

chenbh
chenbh previously requested changes Aug 30, 2023
Copy link
Contributor

@chenbh chenbh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, forgot that pack deposits the built binaries at /cnb/process/<app>, which we hard code at

Command: []string{"/cnb/process/build-init"},
.

- Support building with pack or ko locally

Signed-off-by: Tom Kennedy <[email protected]>
- This allows us to modify the command for images built with ko because they have a different entrypoint

Signed-off-by: Tom Kennedy <[email protected]>
@codecov-commenter
Copy link

Codecov Report

Merging #1295 (a31a18b) into main (4d30b2a) will not change coverage.
Report is 3 commits behind head on main.
The diff coverage is 95.65%.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

@@           Coverage Diff           @@
##             main    #1295   +/-   ##
=======================================
  Coverage   67.41%   67.41%           
=======================================
  Files         133      133           
  Lines        8093     8093           
=======================================
  Hits         5456     5456           
  Misses       2200     2200           
  Partials      437      437           
Files Coverage Δ
pkg/apis/build/v1alpha2/build_pod.go 97.07% <100.00%> (ø)
pkg/blob/fetch.go 58.90% <100.00%> (ø)
pkg/cnb/build_metadata.go 57.89% <100.00%> (ø)
pkg/cnb/env_vars.go 84.00% <100.00%> (ø)
pkg/dockercreds/parse_secrets.go 59.21% <100.00%> (ø)
pkg/registry/fetch.go 49.61% <100.00%> (ø)
pkg/secret/volume_secret_reader.go 67.56% <100.00%> (ø)
pkg/notary/repository.go 0.00% <0.00%> (ø)

@tomkennedy513 tomkennedy513 dismissed chenbh’s stale review October 2, 2023 19:00

implemented requested changes

@tomkennedy513 tomkennedy513 merged commit f97299a into main Oct 2, 2023
3 checks passed
@tomkennedy513 tomkennedy513 deleted the local-dev branch October 2, 2023 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants